package com.ltkj.baseplatform.service;

import java.util.List;

import com.ltkj.baseplatform.domain.SerCollectData;
import com.ltkj.baseplatform.domain.SerCommentData;
import com.ltkj.baseplatform.domain.SerTravelNotes;
import com.ltkj.baseplatform.domain.bo.SerTravelNotesBo;
import com.ltkj.baseplatform.domain.vo.SerTravelNotesVo;

/**
 * 游记管理Service接口
 * 
 * @author ruoyi
 * @date 2023-09-03
 */
public interface ISerTravelNotesService 
{
    /**
     * 查询游记管理
     * 
     * @param id 游记管理主键
     * @return 游记管理
     */
    public SerTravelNotes selectSerTravelNotesById(Long id);

    /**
     * 查询游记管理列表
     * 
     * @param serTravelNotes 游记管理
     * @return 游记管理集合
     */
    public List<SerTravelNotesVo> selectSerTravelNotesList(SerTravelNotes serTravelNotes);

    /**
     * 查询游记管理列表(小程序使用)
     *
     * @param serTravelNotes 游记管理
     * @return 游记管理集合
     */
    List<SerTravelNotesVo> selectAppletTravelNotesList(SerTravelNotes serTravelNotes);

    /**
     * 新增游记管理
     * 
     * @param serTravelNotes 游记管理
     * @return 结果
     */
    public int insertSerTravelNotes(SerTravelNotes serTravelNotes);

    /**
     * 修改游记管理
     * 
     * @param serTravelNotes 游记管理
     * @return 结果
     */
    public int updateSerTravelNotes(SerTravelNotes serTravelNotes);

    /**
     * 批量删除游记管理
     * 
     * @param ids 需要删除的游记管理主键集合
     * @return 结果
     */
    public int deleteSerTravelNotesByIds(Long[] ids);

    /**
     * 删除游记管理信息
     * 
     * @param id 游记管理主键
     * @return 结果
     */
    public int deleteSerTravelNotesById(Long id);

    /**
     * 新增游记（小程序）
     *
     * @param serTravelNotesBo 游记管理Bo类
     * @return 结果
     */
     int insertAppletTravelNotes(SerTravelNotesBo serTravelNotesBo);

    /**
     * 修改游记（小程序）
     *
     * @param serTravelNotesBo 游记管理
     * @return 结果
     */
     int updateAppletTravelNotes(SerTravelNotesBo serTravelNotesBo);

    /**
     * 查询游记详情（小程序）
     *
     * @param id 游记主键
     * @return 游记
     */
     SerTravelNotesVo selectAppletTravelNotesById(Long id);

    /**
     * 更新游记的浏览量+1
     *
     * @param id 内容id
     * @return 结果
     */
    int updateViewNum(Long id);
    /**
     * 更新游记的评论量
     *
     * @param id 内容id
     * @return 结果
     */
    int updateCommentNum(Integer num, Long id);
    /**
     * 更新游记的点赞量
     *
     * @param id 内容id
     * @return 结果
     */
    int updateLikeNum(Integer num, Long id);

    /**
     * 游记点赞接口
     *
     * @param id 内容id
     * @return 结果
     */
    int addLikes(Long id);
    /**
     * 游记取消点赞接口
     *
     * @param id 内容id
     * @return 结果
     */
    int cancelLikes(Long id);
    /**
     * 游记收藏接口
     *
     * @param serCollectData 收藏内容
     * @return 结果
     */
    int addCollect(SerCollectData serCollectData,SerTravelNotes serTravelNotes);
    /**
     * 游记取消收藏接口
     *
     * @param id 内容id
     * @return 结果
     */
    int cancelColect(Long id);
    /**
     * 游记发布评论
     *
     * @param serCommentData 评论内容
     * @return 结果
     */
    int publishComment(SerCommentData serCommentData);
    /**
     * 游记删除评论接口
     *
     * @param id 评论id
     * @return 结果
     */
    int deleteComment(Long id);
}
